#ifndef BIB_COMUNICACION_H_
#define BIB_COMUNICACION_H_

#include <stdlib.h>
#include <pthread.h>
#include <stdint.h>
#include "bib_Log.h"
#include "bib_Socket.h"
#include "bib_Hilos.h"
#include "bib_FileSystem.h"
#include "bib_Planificadores.h"

//Intervalo de solicitudes
#define SOLICITUD_MIN (uint32_t)2500000001
#define SOLICITUD_MAX (uint32_t)4294967295

int atenderNuevaConexion(int sockEntrada, int *nuevoSock);
void verificarEstadoSistema(int sock);
void responderErrorFS(int sock, uint32_t idSolic);
void responderEscrituraOkFS(int sock, uint32_t idSolic);
int responderLecturaOkFS(int sock, struct HEADER_NIPC header, char *mensaje);
int atenderNuevoMensaje(int sock);
int solicitarSector(uint32_t sector,uint8_t idPlanif);
int escribirEnPlanif(int idLista, struct stPLANIFICADOR *planif);
int liberarYDistribuirCarga(int sock);
void quitarDeSelect(int sock);
int informarFinEspejo(int sock);

#endif
